A computer system, including single-board and single-chip computer systems, generally include a central processing unit (“CPU”) main board for manipulating data, a memory controller and a memory subsystem for storing data. A memory controller interfaces the CPU and memory, managing data transfer and retrieval therebetween. Generally, data is retrieved from memory for processing by the CPU and returned to memory when not being actively processed. Memory references from the memory controller to the memory subsystem often requires significant power (i.e., heat) to be dissipated in the CPU main board.
When the CPU needs data retrieved from memory, the CPU sends out a memory request to the memory controller. The memory controller generates an address to access the memory subsystem (e.g., the memory boards such as DIMM or other types) and retrieve the data. The appropriate address is typically communicated to the memory via an address bus, and the data is typically transferred to/from the memory via a data bus. Once the data is retrieved from the memory, the memory controller relays the requested data back to the CPU for processing.
Accessing memory entails several different specific tasks, each task using differing levels of power, and thus generating differing quantities of heat. One example of an acute heat-generating task is the memory controller issuing an “Active” state (i.e., combination of RAS/CAS/WE signals) resulting in an SDRAM chip opening a page which consumes significant power on a memory core area. Another example memory system operation that generates significant heat is the memory controller issuing a “Read/Write” mode. Depending on the particular data and its burst rate, I/O bus activity increases dramatically between the memory controller and the memory, typically reaching peak levels of power (i.e., heat) dissipation during the operation.
Large quantities of data are routinely transferred to and from computer memory; however, data transfer is typically not uniform over time. Periods of intense data transfer to/from memory are separated by periods of minimal data transfer. Large numbers of memory operations generate measurable heat. Therefore, heat-generation is not uniform over time. Heat generated by digital system operations increases memory and computer system temperature, with excessive heat having a potentially adverse effect on system performance. It is therefore desirable to timely remove heat from computer and memory systems.
In one conventional computer system cooling method, cooling mechanisms such as fans or air conditioning apparatus are responsive to measured temperature changes. A computer system generates operating heat that warms system components and surrounding air until temperature is detected outside an acceptable limit. Heat is subsequently removed by dispatching cooling mechanisms until system temperature is restored to within acceptable limits. This remedial-type cooling cycle is repeated as necessary. Generally, some delay time period elapses between the occurrence of the system activity that generates the heat, detection of the heat and onset of cooling operations to remove the heat. System components are exposed to elevated temperatures during the delay time period prior to cooling operations, as well as during the time necessary to remove the heat. Optionally, cooling apparatus is continuously operated. Cooling mechanisms use energy, create noise and require maintenance, generally proportional to operating time. Cooling mechanisms operated continually in response to cyclic heat generation is inefficient, increasing operating and maintenance costs, as well as system noise levels. These conventional cooling methods provide rather coarse system thermal control.
A method and arrangement, responsive to digital systems performance monitoring, for fine-grain thermal control of electronic systems, particularly memory subsystems, that address the aforementioned problems, as well as other related problems, are therefore desirable.